package com.zsummer.design.create.singleton;

/**
 * @author zsummer
 * 2020/3/22 9:40
 * 单例
 */
public class Client {
    public static void main(String[] args) {
        SingleTon.getSingleTon();
    }
}

/**
 * 饿汉方式
 */
//class SingleTon {
//    private static SingleTon singleTon = new SingleTon();
//
//    private SingleTon() {}
//
//    public static SingleTon getSingleTon() {
//        return singleTon;
//    }
//}

/**
 * 懒汉方式
 */
//class SingleTon {
//    private static  volatile SingleTon singleTon;
//
//    private SingleTon() {}
//
//    public static SingleTon getSingleTon() {
//       if (singleTon == null) {
//           synchronized (SingleTon.class) {
//               if (singleTon == null) {
//                   singleTon = new SingleTon();
//               }
//           }
//       }
//       return singleTon;
//    }
//}

/**
 * 枚举方式
 */
enum SingleTon {
    SINGLETON;

    public static SingleTon getSingleTon() {
        return SINGLETON;
    }
}